using System;
using System.Collections.Generic;
using System.Text;

namespace CVS
{
    public interface IRemoteClient
    {
        string GetSucessor();
        void SetSucessor(string address);
        string GetPredecessor();
        void SetPredecessor(string address);

        int GetRepId();
        int GetNextRepId(string original_address, string address);

        IRepositorio RemoteCheckout(string id);
        int RemoteCheckin(IRepositorio rep);
        void RemoteCheckinProp(IRepositorio rep);

        Boolean RemoteDeleteRep(string rep_id);
        void RemoteDeleteRepProp(string rep_id);

        IRepositorio RemoteCreateRep(string name, int rep_id);
        IRepositorio RemoteCreateRepProp(string name, int rep_id, string main_address);

        string RemoteListFiles(string rep_number);

        List<IFicheiro> ShowRepContent(string id);
        void CreateFile(string name, string rep_number);
        string ShowFileContent(string rep_number, string filename);
        bool SaveFile(string rep_number, string filename, string content);
        void DeleteFile(string rep_id, string file_name, int previousOperation);

        IGestorRepositorios TransferData(string address);
        void TransferRepositories(IRepositorio rep);
    }
}
